package com.dao;

import com.entity.ShoppingCar;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ShoppingCarDao {

  /**
   * 将商品添加到购物车
   *
   * @param userId 用户编号
   * @param goodId 商品编号
   * @param goodNum 数量
   * @return 添加成功返回条目编号，否则返回0
   */
  int insertAShoppingCar(
      @Param("itemId") String itemId,
      @Param("goodId") String goodId,
      @Param("userId") String userId,
      @Param("goodNum") int goodNum);

  /**
   * 获取用户的购物车对应页的条目
   *
   * @param userId 用户编号
   * @param startIndex 开始索引
   * @param num 数量
   * @return 用户的购物车对应页的条目
   */
  List<ShoppingCar> selectCarList(
      @Param("userId") String userId, @Param("startIndex") int startIndex, @Param("num") int num);

  /**
   * 删除购物车条目（是直接删除记录）
   *
   * @param itemId 购物车条目编号
   * @return 删除成功返回1，失败返回0
   */
  int deleteCarItem(@Param("itemId") String itemId);

  /**
   * 查看商品在自己购物车中的数量
   *
   * @param userId 用户编号
   * @param goodId 商品编号
   * @return 商品在自己购物车中的数量
   */
  int selectInCarCount(@Param("userId") String userId, @Param("goodId") String goodId);

  /**
   * 获取某个用户的购物车条目数量
   *
   * @param userId 用户编号
   * @return 购物车条目数量
   */
  int selectCarCount(@Param("userId") String userId);
}
